/**
 * Author(s): xuming.Wong <xuming.Wong@gmail.com>
 */

#ifndef __PQ_Player_H__
#define __PQ_Player_H__

#include "Unit.h"

namespace PQServiceLogin
{
	enum PlayerState
	{
		Player_State_ServerEmpty=100,//server init player state
		Player_State_Connect,//state that player connection ok,need send Connect packet,

		//Login server player state
		Player_State_LoginEmpty=300,
		Player_State_LoginConnect,
		Player_State_LoginWaitAuth,
		Player_State_LoginAuthed,
		Player_State_LoginWaitQueue,
		Player_State_LoginInQueue,
		Player_State_LoginNormal,
		Player_State_LoginServerReady,
	};

	class Player
		: public Unit
	{
	public:

		bool isAlive() const { return (_deathState == Death_State_Alive); };

		void update(float deltaT);

		inline float getPositionX( ) const { return _positionX; }
        inline float getPositionY( ) const { return _positionY; }
        inline float getPositionZ( ) const { return _positionZ; }

	protected:
		float _positionX;
		float _positionY;
		float _positionZ;

        WorldLocation _teleportDest;

	};

}
#endif
